package com.unitd.modules.sys.dao;

import com.unitd.frame.mybatis.core.dao.IBaseDao;
import com.unitd.modules.sys.entity.SysRole;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ISysRoleDao extends IBaseDao<SysRole, String> {

	/**
	 * @desc 获取单条数据
	 * @param id 主键ID
	 * @return List
	 */
	SysRole findBy(@Param("id") String id);

	/**
	 * @desc 根据条件查询获取系统角色信息
	 * @return List
	 */
	List<SysRole> findAllData();

	/**
	 * @desc 根据条件查询获取系统角色信息
	 * @param sysRole  查询条件
	 * @return List
	 */
	List<SysRole> findListBy(SysRole sysRole);

	/**
	 * @desc 根据父角色，查询子角色
	 * @param parentId 父角色ID
	 */
	List<SysRole> findListByParentId(@Param("parentId") String parentId);

	/**
	 * @desc 根据用户ID获取该用户对应的角色列表
	 * @param userId 用户ID
	 * @return List
	 */
	List<SysRole> findRoleListByUserId(@Param("userId") String userId);

	/**
	 * @desc 根据选择的机构编号,获取该机构下的用户的最大sort值并+1
	 * @param parentId 上级角色ID
	 * @return List
	 */
	Integer getMaxSortByPId(@Param("parentId") String parentId);

	/**
	 * @desc 获取即将新增的记录的主键ID值
	 * @return List
	 */
	String getPrePrimaryKey();

	/**
	 * @desc 根据参数信息,逻辑删除对象信息
	 * @param entity 删除参数对象
	 */
	int deleteByDelFlag(SysRole entity);
}